Software Composition with Multiple Nested Inheritance
نویسندگان
چکیده
This paper introduces a programming language that makes it convenient to extend large software systems and even to compose them in a modular way. JX/MI supports multiple nested inheritance, building on earlier work on nested inheritance in the language JX. Nested inheritance permits modular, type-safe extension of a package (including nested packages and classes), while preserving existing type relationships. Multiple nested inheritance enables simultaneous extension of two or more classes or packages, composing their types and behavior while resolving conflicts with a relatively small amount of code. The utility of JX/MI is demonstrated by using it to construct two composable, extensible frameworks: a compiler framework for Java, and a peer-to-peer networking system. Both frameworks support composition of extensions. For example, two compilers adding different, domain-specific features to Java can be composed to obtain a compiler for a language that supports both sets of features.
منابع مشابه
Nested Intersection for Scalable Software Composition
This paper introduces a programming language that makes it convenient to compose large software systems, combining their features in a modular way. J& supports nested intersection, building on earlier work on nested inheritance in the language Jx. Nested inheritance permits modular, type-safe extension of a package (including nested packages and classes), while preserving existing type relation...
متن کاملEncapsulation and composition as orthogonal operators on mixins: a solution to multiple inheritance problems
In class-based multiple inheritance systems, interpretations as different as duplication, sharing and specialization are associated with the single phenomenon of name collisions. To deal with those name collisions, various mechanisms have been proposed, but these solutions generally restrain software reusability which is considered to be one of the key features of OO systems. On top of this, mo...
متن کاملACM Computing Surveys 28(4es), December 1996, http://www
This is a position statement for the workshop on strategic directions in computing research held at MIT in June 1996. In the (conventional) OO model, the separation of concerns principle is supported basically in three ways: 1. By defining objects as the models of real-world concepts that arè`naturally'' separated from each other 2. By separating the concerns of providing an abstract object int...
متن کاملInheritance Decomposed Position Paper
Inheritance is often portrayed as a fundamental ingredient of object-oriented programming, one which is essential to building extensible software systems. However, inheritance is also a controversial mechanism with many competing and often contradictory interpretations, whose use can even impede extensibility in certain scenarios. Decomposing inheritance into the more basic mechanisms of object...
متن کاملSolving the modeling problems of object-oriented languages by composing multiple aspects using composition filters
Building software from reusable components is considered important in reducing development costs. Object-oriented languages such as C++, Smalltalk and Java, however, are not capable of expressing certain aspects of applications in a reusable way. Software engineers may experience difficulties in composing and reusing applications from components, for example if components implement code for mul...
متن کامل